package cn.gson.fengboot.model.service;

import cn.gson.fengboot.model.dao.TfyclientFormDao;
import cn.gson.fengboot.model.dao.TfyempoperationDao;
import cn.gson.fengboot.model.dao.TfylinkmanFormDao;
import cn.gson.fengboot.model.mapper.TfylinkmanMapper;
import cn.gson.fengboot.model.mapper.TfyrelationwarnMapper;
import cn.gson.fengboot.model.pojos.Tfyempoperation;
import cn.gson.fengboot.model.pojos.TfylinkmanForm;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional(rollbackFor = Exception.class)
public class TfyLinkmanService {

    @Autowired
    TfylinkmanFormDao tfylinkmanFormDao;//联系人

    @Autowired
    TfyclientFormDao tfyclientFormDao;//客户

    @Autowired
    TfylinkmanMapper tfylinkmanMapper;//联系人mapper

    @Autowired
    TfyrelationwarnMapper tfyrelationwarnMapper;

    //联系人对客户多对一、模糊查询
    public List<TfylinkmanForm> findAllLinkman(String search){
        return tfylinkmanMapper.findAllLinkman(search);
    }

    //已失效联系人对客户多对一、模糊查询
    public List<TfylinkmanForm> findAllLinkmanzt(String search){
        return tfylinkmanMapper.findAllLinkmanzt(search);
    }

    //联系人新增,修改方法
    public void addlinkman(TfylinkmanForm lxr) {
        lxr.setLinkmanState(1);
        TfylinkmanForm save = tfylinkmanFormDao.save(lxr);
    }

    //逻辑删除联系人
    public Integer deleteLinkman(String linkmandx){
        JSONObject obj = (JSONObject)JSONObject.parse(linkmandx);
        List linkmanlist = obj.getObject("linkmanlist",List.class);
        //转化成JSONArray
        JSONObject object = null;
        JSONArray json = JSONArray.parseArray(String.valueOf(linkmanlist));
        System.out.println("集合："+linkmanlist.toString());
        int ad = 0;
        for(int i=0; i<json.size(); i++){
            object = (JSONObject)json.get(i);
            Integer linkmanid = object.getInteger("linkmanId");
            System.out.println("联系人ID："+linkmanid);
            System.out.println("obj:"+obj.toString());
            TfylinkmanForm tfylinkmanForm = tfylinkmanFormDao.findById(linkmanid).get();
            System.out.println("联系人:"+tfylinkmanForm.toString());
            if(tfyrelationwarnMapper.lxrlxtx(linkmanid).size() == 0){
                tfylinkmanForm.setLinkmanState(0);
                tfylinkmanForm.getClientId().setClientState(0);
                tfylinkmanFormDao.save(tfylinkmanForm);
                ad = 1;
            }
        }
        return ad;
    }

    //恢复联系人修改
    public void hfLinkman(String linkmandx){
        JSONObject obj = (JSONObject)JSONObject.parse(linkmandx);
        List linkmanlist = obj.getObject("linkmanlist",List.class);
        //转化成JSONArray
        JSONObject object = null;
        JSONArray json = JSONArray.parseArray(String.valueOf(linkmanlist));
        System.out.println("集合："+linkmanlist.toString());
        for(int i=0; i<json.size(); i++){
            object = (JSONObject)json.get(i);
            Integer linkmanid = object.getInteger("linkmanId");
            System.out.println("联系人ID："+linkmanid);
            System.out.println("obj:"+obj.toString());
            TfylinkmanForm tfylinkmanForm = tfylinkmanFormDao.findById(linkmanid).get();
            System.out.println("联系人:"+tfylinkmanForm.toString());
            tfylinkmanForm.setLinkmanState(1);
            tfylinkmanForm.getClientId().setClientState(1);
            TfylinkmanForm save = tfylinkmanFormDao.save(tfylinkmanForm);
        }
    }

    //物理删除联系人
    public void scLinkman(String linkmandx){
        JSONObject obj = (JSONObject)JSONObject.parse(linkmandx);
        List linkmanlist = obj.getObject("linkmanlist",List.class);
        //转化成JSONArray
        JSONObject object = null;
        JSONArray json = JSONArray.parseArray(String.valueOf(linkmanlist));
        System.out.println("集合："+linkmanlist.toString());
        for(int i=0; i<json.size(); i++){
            object = (JSONObject)json.get(i);
            Integer linkmanid = object.getInteger("linkmanId");
            System.out.println("联系人ID："+linkmanid);
            System.out.println("obj:"+obj.toString());
            TfylinkmanForm tfylinkmanForm = tfylinkmanFormDao.findById(linkmanid).get();
            System.out.println("联系人:"+tfylinkmanForm.toString());
            tfylinkmanFormDao.delete(tfylinkmanForm);
            tfyclientFormDao.delete(tfylinkmanForm.getClientId());
        }
    }

    //根据客户id查询联系人
    public List<TfylinkmanForm> findAllkhcxlxr(Integer id){
        return tfylinkmanMapper.findAllkhcxlxr(id);
    }

    //根据客户id or id查询联系人
    public List<TfylinkmanForm> findAllkhcxlxrid(Integer id,Integer id2){
        return tfylinkmanMapper.findAllkhcxlxrid(id,id2);
    }

    //根据联系人id查询联系人和客户
    public TfylinkmanForm findlxrkh(Integer linkmanId){
        return tfylinkmanMapper.findlxrkh(linkmanId);
    }

}
